package com.cleaningcloud.erp.mapper;

import com.cleaningcloud.erp.domain.ErpSupplier;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 供应商管理Mapper接口
 *
 * @author cleaningcloud
 * @date 2024-09-25
 */
public interface ErpSupplierMapper {
    /**
     * 查询供应商管理
     *
     * @param supplierId 供应商管理主键
     * @return 供应商管理
     */
    ErpSupplier selectErpSupplierBySupplierId(Long supplierId);

    /**
     * 查询供应商管理列表
     *
     * @param erpSupplier 供应商管理
     * @return 供应商管理集合
     */
    List<ErpSupplier> selectErpSupplierList(ErpSupplier erpSupplier);

    /**
     * 新增供应商管理
     *
     * @param erpSupplier 供应商管理
     * @return 结果
     */
    int insertErpSupplier(ErpSupplier erpSupplier);

    /**
     * 修改供应商管理
     *
     * @param erpSupplier 供应商管理
     * @return 结果
     */
    int updateErpSupplier(ErpSupplier erpSupplier);

    /**
     * 删除供应商管理
     *
     * @param supplierId 供应商管理主键
     * @return 结果
     */
    int deleteErpSupplierBySupplierId(Long supplierId);

    /**
     * 批量删除供应商管理
     *
     * @param supplierIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteErpSupplierBySupplierIds(Long[] supplierIds);


    /**
     * 获取自增主键下一位
     *
     * @return
     */
    @Select("SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'erp_supplier'")
    int getAutoIncrement();


    /**
     * 获取所有列表
     *
     * @return
     */
    List<ErpSupplier> getList();


    /**
     * 根据供应商编号查询供应商数据
     *
     * @return
     */
    @Select("select count(1) from erp_supplier a where supplier_no = #{supplierNo}")
    int checkNoUnique(@Param("supplierNo") String supplierNo);


    /**
     * 根据供应商编号查询供应商数据
     *
     * @return
     */
    @Select("select a.supplier_id from erp_supplier a where supplier_no = #{supplierNo}")
    Long selectSupplierByNo(@Param("supplierNo") String supplierNo);
}
